package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

/**
 * @User: vitobo
 * @Date: 2024-08-12
 * @Description: 使用字节流来读取文件;
 *
 */
public class IODemo6 {

    // 如果要想打开一个文件去读, 就需要保证这个文件是存在的;
    public static void main(String[] args) throws IOException {
        //
        InputStream inputStream = new FileInputStream("f:/test.txt");

        // 进行读操作;
        while (true){
            // read 无参数版本, 一次读一个字节
            // read 一个参数版本: 把读到的内容填充到参数这个字节数组中,(此处的参数是个"输出型参数), 返回值是实际读取的字节数
            // read 三个参数版本: 和2类似, 只不过是往数组的一部分区间里尽可能填充;

            // 返回值, read读取的是 一个字节, 返回的是int, 除了要表示byte里的0-255(-128~127)这样的情况之外,
            // 还需要表示一个特殊情况: -1 这个情况表示读取到文件结束了(文件末尾了)
            int b = inputStream.read();
            if(b==-1){
                // 读取完毕
                break;
            }
            // 16进制打印
            System.out.println(" " + (byte)b);
        }

        inputStream.close();
    }
}
